home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 1998
/
MacHack 1998.toast
/
Sessions
/
STL
/
Slides
/
STL2.cp
< prev
next >
Wrap
Text File
|
1998-06-15
|
1KB
|
50 lines
// STL2.cp
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
__MSL_FIX_ITERATORS__(char *); // Not req. w/built ins in CWPro1
int main()
{
vector<char *> v; // OK in CW Pro 3
// vector<char *, allocator<char *> > v; // Required in CWPro1
assert(v.empty());
v.push_back("sleep");
v.insert(v.end(), "was");
assert(v.size() == 2);
v.push_back("for");
v.push_back("the");
v.push_back("weak");
v.push_back("or");
v.pop_back();
v.push_back("and");
v.push_back("sickly");
v[1] = "is"; // Used to replace existing: "is" for "was"
// v[7] = "DOS users"; // Cannot use this notation to add elements.
vector<char *>::iterator vi; // Not OK in CWPro1
// vector<char *, allocator<char *> >::iterator vi;
for (vi = v.begin(); vi != v.end(); ++vi)
{
cout << (*vi) << " ";
}
cout << endl;
typedef deque<char *, allocator<char *> > MyDeque;
// MyDeque d((v.begin()), (v.end())); // was OK in CWPro1
MyDeque d(v.size(), ""); // This ugly work around
copy(v.begin(), v.end(), d.begin());// is required in CW Pro 3
d.erase(d.end() - 3, d.end() - 1);
d.push_front("MacHack:");
ostream_iterator<char *>out(cout, " "); // Not OK in CWPro1.
// ostream_iterator<char *, char, char_traits<char> > out(cout, " ");
copy(d.begin(), d.end(), out); cout << endl;
}
// sleep is for the weak and sickly
// MacHack: sleep is for the sickly